# 格式化符号
# %06d，表示输出的整数显示位数，不⾜以0补全，超出当前位数则原样输出
# # %.2f，表示⼩数点后显示的⼩数位数。

age=18
name='wq'
weight=75.6
student=1
# # 我的名字是wq
print('我的名字是 %s' % name)

# /我的学号是0001
print('我的学号是%04d' % student)

#  我的体重是75.50公⽄

print('我的体重是%.2f' % weight)
# 我的名字是TOM，今年18岁了
print('我的名字是%s，今年%d' % (name,age))

#f表达式
 # 我的名字是TOM，明年19岁了
print(f'我的名字是{name}，今年{age+1}')

# 混合运算优先级顺序： () ⾼于 ** ⾼于 * / // % ⾼于 + -

# /多个变量赋值
num1, float1, str1 = 10, 0.5, 'hello world'
print(num1)
print(float1)
print(str1)

# 多变量赋相同值
a = b = 10
print(a)
print(b)


# 逻辑运算符
a = 1
b = 2
c = 3
print((a<b) and (b<c) )  #True
print((a>b) and (b<c) )   # False
print((a<b) or (b<c) ) #True
print(not  (a>b) )  #True


# /字符串  下标  注意：下标从0开始
name='abcdefg'
print(name[0])
print(name[2])
print(name[5])


#切⽚是指对操作的对象截取其中⼀部分的操作。字符串、列表、元组都⽀持切⽚操作
print(name[2:5:1])
print(name[2:5])
print(name[:5])
print(name[:])
print(name[::2])
print(name[:-1])
print(name[::-1])
print(name[-4:-2])

# 查找
mystr = "hello world and superctest and chaoge and Python"
# find检测某个⼦串是否包含在这个字符串中，如果在返回这个⼦串开始的位置下标，否则则返回-1。
print(mystr.find('and'))
print(mystr.find('and',15,40))
print(mystr.find('ands'))

# index()检测某个⼦串是否包含在这个字符串中如果在返回这个⼦串开始的位置下标，否则则报异常
print(mystr.index('and'))
print(mystr.index('and',12,34))
# print(mystr.index('ands'))  #报错
# rfind()： 和find()功能相同，但查找⽅向为右侧开始。
# rindex()：和index()功能相同，但查找⽅向为右侧开始。

# count()：返回某个⼦串在字符串中出现的次数
print(mystr.count('and'))
print(mystr.count('ands'))
print(mystr.count('and',0,20))

# 修改
# replace()：替换
print(mystr.replace('and','hehehe'))
print(mystr.replace('and','heh',10))
# 注意：数据按照是否能直接修改分为可变类型和不可变类型两种。字符串类型的数据修改的时候
# 不能改变原有字符串，属于不能直接修改数据的类型即是不可变类型。

# split()：按照指定字符分割字符串。
print(mystr.split('and'))
print(mystr.split('and',2))
print(mystr.split(' '))
print(mystr.split(' ',2))
# 如果分割字符是原有字符串中的⼦串，分割后则丢失该⼦串。


# join()：⽤⼀个字符或⼦串合并字符串，即是将多个字符串合并为⼀个新的字符串。
list1 = ['chao', 'ge', 'test', 'promotion']
t1 = ('aa', 'b', 'cc', 'ddd')
print(','.join(list1))
print('...'.join(t1))


# capitalize()：将字符串第⼀个字符转换成⼤写
print(mystr.capitalize())
# title()：将字符串每个单词⾸字⺟转换成⼤写。
# lower()：将字符串中⼤写转⼩写。
# upper()：将字符串中⼩写转⼤写
# lstrip()：删除字符串左侧空⽩字符
# rstrip()：删除字符串右侧空⽩字符。
# strip()：删除字符串两侧空⽩字符。
# ljust()：返回⼀个原字符串左对⻬,并使⽤指定字符(默认空格)填充⾄对应⻓度 的新字符串。
# just()：返回⼀个原字符串右对⻬,并使⽤指定字符(默认空格)填充⾄对应⻓度 的新字符串，语法和
# ljust()相同。
# center()：返回⼀个原字符串居中对⻬,并使⽤指定字符(默认空格)填充⾄对应⻓度 的新字符串，语
# 法和ljust()相同。

# 判断即是判断真假，返回的结果是布尔型数据类型：True 或 False。
# startswith()：检查字符串是否是以指定⼦串开头，是则返回 True，否则返回 False。如果设置开
# 始和结束位置下标，则在指定范围内检查。
print(mystr.startswith('hello'))


# endswith()：：检查字符串是否是以指定⼦串结尾，是则返回 True，否则返回 False。如果设置开
# 始和结束位置下标，则在指定范围内检查
print(mystr.endswith('Python"'))

# isalpha()：如果字符串⾄少有⼀个字符并且所有字符都是字⺟则返回 True, 否则返回 False。
print(mystr.isalpha())

# isdigit()：如果字符串只包含数字则返回 True 否则返回 False。
print(mystr.isdigit())

# isspace()：如果字符串中只包含空⽩，则返回 True，否则返回 False。
print(mystr.isspace())




